/*
 * Copyright 2010 - Jeremie Brebec
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */
package org.jb.coinche.client;

import org.jb.coinche.client.gin.AppInjector;
import org.jb.user.client.LoginListener;

import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.RunAsyncCallback;
import com.google.gwt.user.client.Window;

public class NotificationStarter implements LoginListener {

	public boolean logged = false;
	public boolean notificationPoolCreated = false;
	
	public NotificationStarter() {
		createNotificationPool();
	}
	
	@Override
	public void logged() {
		logged = true;
		createNotificationPool();
	}
	
	private void createNotificationPool() {
		GWT.runAsync( new RunAsyncCallback() {
			
			@Override
			public void onSuccess() {
				
				if (logged && !notificationPoolCreated) {
					notificationPoolCreated = true;
					GWT.<AppInjector>create(AppInjector.class).getNotificationPool().run();
				}
			}
			
			@Override
			public void onFailure(Throwable reason) {
				Window.Location.reload();			
			}
		});
	}

	@Override
	public void loggout() {
		// TODO Auto-generated method stub
		
	}

}
